<?php


class SegurosController extends AppController 
{
	
	public $uses = array('Seguro');	
	
	public function index()
	{
		$this->layout = 'default_ini';	
	}
	public function add_seguro()
	{
		$this->layout = 'default_ini';

		$this->setParametersAdd();
		
		if ($this->request->is('post') || $this->request->is('put') )
		{

			$info_seguro = array( 
										'Seguro'=> array(
															'rif_seguro' => $this->request->data['Seguro']['prefijo_rif_seguro'].'-'
																				.$this->request->data['Seguro']['rif_seguro'],
															'nombre_seguro' => $this->request->data['Seguro']['nombre_seguro'],
															'nro_tlf_seguro_1' => $this->request->data['Seguro']['prefijo_telefono_seguro_1']
																					.$this->request->data['Seguro']['nro_tlf_seguro_1'],
															'nro_tlf_seguro_2' => $this->request->data['Seguro']['prefijo_telefono_seguro_2']
																					.$this->request->data['Seguro']['nro_tlf_seguro_2'],
															'nombre_corredor' => $this->request->data['Seguro']['nombre_corredor'],
															'apellido_corredor' => $this->request->data['Seguro']['apellido_corredor'],
															'nro_tlf_corredor_1' => $this->request->data['Seguro']['prefijo_telefono_corredor_1']
																						.$this->request->data['Seguro']['nro_tlf_corredor_1'],
															'nro_tlf_corredor_2' => $this->request->data['Seguro']['prefijo_telefono_corredor_2']
																						.$this->request->data['Seguro']['nro_tlf_corredor_2'],
															'email_corredor' => $this->request->data['Seguro']['email_corredor']	
														)
									);
			$this->postAddSeguro($info_seguro);

		}
	}
	public function consult_seguro()
	{
		$this->layout = 'default_ini';
		$this->llenar_combobox_prefijo_rif();
		
		
	}
	public function getGridConsultSeguro($nombre_seguro,$rif_seguro)
	{
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenar_seguro($nombre_seguro,$rif_seguro);
			$this->render('/Elements/GridConsultSeguro');
		}
	}
	public function getDetalleSeguro($id_seguro)
	{
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenar_info_seguro(1, $id_seguro);
			$this->render('/Elements/GetDetalleSeguro');
		}
	}
	public function getErrors($errors)
	{
		$errores_view = '';
		
		if (array_key_exists('rif_seguro', $errors))
		{
			$errores_view = $errores_view .'|'.'Rif del Seguro'.'++'.$errors['rif_seguro'][0];
		}
		if (array_key_exists('nombre_seguro', $errors))
		{
			$errores_view = $errores_view .'|'.'Nombre del Seguro'.'++'.$errors['nombre_seguro'][0];
		}
		if (array_key_exists('nro_tlf_seguro_1', $errors))
		{
			$errores_view = $errores_view .'|'.'Numero de Telefono Principal del Seguro'.'++'.$errors['nro_tlf_seguro_1'][0];
		}
		if (array_key_exists('nro_tlf_seguro_2', $errors))
		{
			$errores_view = $errores_view .'|'.'Numero de Telefono Secundario del Seguro'.'++'.$errors['nro_tlf_seguro_2'][0];
		}
		if (array_key_exists('nombre_corredor', $errors))
		{
			$errores_view = $errores_view .'|'.'Nombre del Corredor'.'++'.$errors['nombre_corredor'][0];
		}
		if (array_key_exists('apellido_corredor', $errors))
		{
			$errores_view = $errores_view .'|'.'Apellido del Corredor'.'++'.$errors['apellido_corredor'][0];
		}
		if (array_key_exists('nro_tlf_corredor_1', $errors))
		{
			$errores_view = $errores_view .'|'.'Numero de Telefono Primario del Corredor'.'++'.$errors['nro_tlf_corredor_1'][0];
		}
		if (array_key_exists('nro_tlf_corredor_2', $errors))
		{
			$errores_view = $errores_view .'|'.'Numero de Telefono Secundario del Corredor'.'++'.$errors['nro_tlf_corredor_2'][0];
		}
		if (array_key_exists('email_corredor', $errors))
		{
			$errores_view = $errores_view .'|'.'Email del Corredor'.'++'.$errors['email_corredor'][0];
		}

		return $errores_view;
		
		
	}
	public function parserError($error)
	{
		$array_error = array();	
			
		$string_error = explode('|', $error);
		
		for ($i = 0; $i < count($string_error); $i++)
		{
			if ($i != 0)
			{
				$string_problema = explode('++',$string_error[$i]);
					
				array_push($array_error,array(
												'campo' => $string_problema[0],
												'error' => $string_problema[1],
												)
							);
			}
			
		}
		return $array_error;
	}
	public function getEditSeguro($id_seguro,$error = null)
	{
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenar_info_seguro(2, $id_seguro);
			
			if ($error)
			{
				$this->set('errors',$this->parserError($error));	
			}
			else
			{
				$this->set('errors',null);	
			}
			
			$this->render('/Elements/GetEditSeguro');
		}
		elseif ($this->request->is('post') || $this->request->is('put') )
		{
				

				 
			$info_seguro = array( 
										'Seguro' => array(
															'id' => $this->request->data['id'],
															'rif_seguro' => $this->request->data['prefijo_rif_seguro'].'-'.
																				$this->request->data['rif_seguro'],
															'nombre_seguro' => $this->request->data['nombre_seguro'],
															'nro_tlf_seguro_1' => $this->request->data['prefijo_telefono_seguro_1'].
																					$this->request->data['nro_tlf_seguro_1'],
															'nro_tlf_seguro_2' => ($this->request->data['nro_tlf_seguro_2'] == null ?
																					null :  
																					$this->request->data['prefijo_telefono_seguro_2'].
																					$this->request->data['nro_tlf_seguro_2']),
															'nombre_corredor' => $this->request->data['nombre_corredor'],
															'apellido_corredor' => $this->request->data['apellido_corredor'],
															'nro_tlf_corredor_1' => $this->request->data['prefijo_telefono_corredor_1'].
																					$this->request->data['nro_tlf_corredor_1'],
															'nro_tlf_corredor_2' => ($this->request->data['nro_tlf_corredor_2'] == null ?
																						null :
																					$this->request->data['prefijo_telefono_corredor_2'].
																					$this->request->data['nro_tlf_corredor_2']),
															'email_corredor' => $this->request->data['email_corredor']	
															
															
															
														) 
										
									);
		
			$this->postEditSeguro($info_seguro);
		}
		
	}
	
	private function postEditSeguro($info_seguro)
	{
		$this->Seguro->create();
		
		$this->Seguro->set($info_seguro);
		
		$error = null;
		
		if ($this->Seguro->validates()) 
		{
		
			if ($this->Seguro->save($info_seguro))
			{
				$this->setMessageFlash(1, 'Se guardo los cambios del Seguro', null);
			}
			else 
			{
				$this->setMessageFlash(2, 'No se guardo los cambios del Seguro', null);
			}
	
			
		}
		else 
		{
		    $this->setMessageFlash(2, 'No se guardo los cambios del Seguro',null);
			
			$error = $this->getErrors( $this->Seguro->validationErrors);

		}
		$this->redirect(array(
										'controller' => 'Seguros',
										'action' => 'getEditSeguro',$this->Seguro->id,$error
								   )
							 );
			
		
	}
	public function llenar_info_seguro($id_busq, $id_seguro)
	{
		if ($id_busq == 2)
		{
			$this->llenar_combobox_prefijo_telefono();
			$this->llenar_combobox_prefijo_rif();
		}
		$this->InfoEspecificoSeguro($id_busq,$id_seguro);
	}
	public function InfoEspecificoSeguro($id_busq,$id_seguro)
	{
		$detalle_seguros = $this->Seguro->query(
													'SELECT * 
														FROM seguros S 
														WHERE S.id = '.$id_seguro
												);

		if ($id_busq == 2)
		{
			$rif_del_seguro = explode('-',$detalle_seguros[0]['S']['rif_seguro']);
	
			$prefijo_numero_corredor_2 = null;
			$sufijo_numero_corredor_2 = null;
			$prefijo_numero_seguro_2 = null;
			$sufijo_numero_seguro_2 = null;
			
			$prefijo_numero_seguro_1 = substr($detalle_seguros[0]['S']['nro_tlf_seguro_1'],0,4);
			$sufijo_numero_seguro_1 = substr($detalle_seguros[0]['S']['nro_tlf_seguro_1'],3,strlen($detalle_seguros[0]['S']['nro_tlf_seguro_1']));
			
			if ($detalle_seguros[0]['S']['nro_tlf_seguro_2'])
			{
				$prefijo_numero_seguro_2 = substr($detalle_seguros[0]['S']['nro_tlf_seguro_2'],0,4);
				$sufijo_numero_seguro_2 = substr($detalle_seguros[0]['S']['nro_tlf_seguro_2'],3,strlen($detalle_seguros[0]['S']['nro_tlf_seguro_2']));
			}
			
			$prefijo_numero_corredor_1 = substr($detalle_seguros[0]['S']['nro_tlf_corredor_1'],0,4);
			$sufijo_numero_corredor_1 = substr($detalle_seguros[0]['S']['nro_tlf_corredor_1'],3,strlen($detalle_seguros[0]['S']['nro_tlf_corredor_1']));
			
			if ($detalle_seguros[0]['S']['nro_tlf_seguro_2'])
			{
				$prefijo_numero_corredor_2 = substr($detalle_seguros[0]['S']['nro_tlf_corredor_2'],0,4);
				$sufijo_numero_corredor_2 = substr($detalle_seguros[0]['S']['nro_tlf_corredor_2'],3,strlen($detalle_seguros[0]['S']['nro_tlf_corredor_2']));
			}
		
			
			$detalle_seguros[0]['S']['prefijo_rif_seguro'] = $rif_del_seguro[0];
			$detalle_seguros[0]['S']['sufijo_rif_seguro'] = $rif_del_seguro[1];
			
			$detalle_seguros[0]['S']['prefijo_tlf_seguro_1'] = $prefijo_numero_seguro_1;
			$detalle_seguros[0]['S']['sufijo_tlf_seguro_1'] = $sufijo_numero_seguro_1;
			
			$detalle_seguros[0]['S']['prefijo_tlf_seguro_2'] = $prefijo_numero_corredor_2;
			$detalle_seguros[0]['S']['sufijo_tlf_seguro_2'] = $sufijo_numero_corredor_2;
			
			$detalle_seguros[0]['S']['prefijo_tlf_corredor_1'] = $prefijo_numero_corredor_1;
			$detalle_seguros[0]['S']['sufijo_tlf_corredor_1'] = $sufijo_numero_corredor_1;
			
			$detalle_seguros[0]['S']['prefijo_tlf_corredor_2'] = $prefijo_numero_corredor_2;
			$detalle_seguros[0]['S']['sufijo_tlf_corredor_2'] = $sufijo_numero_corredor_2;
			
			
		}
		$this->set('detalle_seguros',$detalle_seguros);
		
		
		
	}
	
	private function postAddSeguro($info_seguro)
	{
		$this->Seguro->create();
		
		if ($this->Seguro->save($info_seguro))
		{
			$this->setMessageFlash(1, 'Se guardo el nuevo seguro', null);
			$this->redirect(array('action' => 'index'));
		}
		else 
		{
			$this->setMessageFlash(2, 'No se guardo el seguro', null);
		}
		
	}
	private function setMessageFlash($id,$mensaje,$nombre_mensaje)
	{
		if (is_null($nombre_mensaje))
		{
			$nombre_mensaje = 'flash';
		}
		switch ($id) 
		{
			case 1: // mensaje bueno
				$this->Session->setFlash($mensaje,'default',array('class'=>'success'),$nombre_mensaje);
				break;
			case 2: // mensaje malo
				$this->Session->setFlash($mensaje,'default',array('class'=>'error-message'),$nombre_mensaje);
				break;
			case 3: // mensaje cuidado
				$this->Session->setFlash($mensaje,'default',array('class'=>'notice'),$nombre_mensaje);
				
				break;
			
			default:
				
				break;
		}
	}
	public function llenar_seguro($nombre_seguro,$rif_seguro)
	{
		$str_query = 'SELECT * 
						FROM seguros S 
						WHERE 1 = 1';
			
		
		
		if ($nombre_seguro != '*')
		{
			$str_query = $str_query.' AND S.nombre_seguro LIKE "%'.$nombre_seguro.'%"';
		}
		if ($rif_seguro != '*')
		{
			$str_query = $str_query.' AND S.rif_seguro LIKE "%'.$rif_seguro.'%"';
		}

		$str_query = $str_query . ' ORDER BY S.id ASC ';
		
		$seguros = $this->Seguro->query($str_query);
		
		$this->set('seguros',$seguros);
	}
	public function setParametersAdd()
	{
		$this->llenar_combobox_prefijo_telefono();
		$this->llenar_combobox_prefijo_rif();
		
	}
	public function llenar_combobox_prefijo_telefono()
	{
		$arreglo_prefijo_telefono = array(
												'0212' => '0212',
												'0412' => '0412',
												'0414' => '0414',
												'0424' => '0424',
												'0416' => '0416',
												'0426' => '0426'
											);
		$this->set('arreglo_prefijo_telefono',$arreglo_prefijo_telefono);				
	}
	
	public function llenar_combobox_prefijo_rif()
	{
		$arreglo_prefijo_rif = array(
												'E' => 'E',
												'G' => 'G',
												'J' => 'J',
												'V' => 'V'
												
											);
		$this->set('arreglo_prefijo_rif',$arreglo_prefijo_rif);				
	}
	
}
	
?>